package com.junzhiit.nengji.api.service;

import com.junzhiit.nengji.api.web.util.wechat.bean.LoginResponse;
import com.junzhiit.nengji.api.web.vo.LoginVO;
import com.junzhiit.nengji.api.web.vo.ResultVO;
import com.junzhiit.nengji.api.web.vo.UserEditVO;
import com.junzhiit.nengji.model.User;


public interface UserService {

	/**
	 * 
	 * TODO 根据id查询用户信息
	 * 
	 * @author Qjen
	 * @time 2018年2月6日 下午3:48:54
	 * @return ResultVO
	 *
	 */
	public ResultVO getUserById(String id);
	
	/**
	 * 
	 * TODO 根据id查询用户信息
	 * 
	 * @author Allen
	 * @time 2018年6月6日 下午17:48:54
	 * @return ResultVO
	 *
	 */
	public ResultVO getUserByCode(String code);
	
	/**
	 * 
	 * TODO 根据openId查询用户
	 * @author PeterMo
	 * @time 2018年5月29日 下午2:37:11
	 * @return User
	 */
	public User checkOpenId(String openId);
	
	/**
	 * 
	 * TODO 用户授权登录
	 * @author PeterMo
	 * @time 2018年5月29日 下午2:37:31
	 * @return ResultVO
	 */
	public ResultVO userAuth(LoginVO loginVO,LoginResponse response);
	/**
	 * 
	 * TODO 用户修改自身资料
	 * 
	 * @author Qjen
	 * @time 2018年3月9日 上午10:26:49
	 * @return ResultVO
	 *
	 */
	public ResultVO edit(UserEditVO userEditVO);	
	/**
	 * 
	 * TODO 发送验证码至邮箱
	 * 
	 * @author Qjen
	 * @time 2018年3月12日 下午1:39:54
	 * @return ResultVO
	 *
	 */
	public ResultVO sendEmailCode(String userId,String email);
	/**
	 * 
	 * TODO 绑定邮箱/修改绑定邮箱
	 * 
	 * @author Qjen
	 * @time 2018年3月12日 下午1:42:34
	 * @return ResultVO
	 *
	 */
	public ResultVO bindEmail(String userId,String email,String code);
	/**
	 * 
	 * TODO 绑定手机号码/修改绑定手机号码
	 * 
	 * @author Qjen
	 * @time 2018年3月13日 上午9:53:27
	 * @return ResultVO
	 *
	 */
	public ResultVO bindMobilePhone(String userId,String mobilePhone,String code,String name);
	/**
	 * 
	 * TODO 邮箱验证-发送验证码
	 * 
	 * @author Qjen
	 * @time 2018年3月13日 下午1:33:06
	 * @return ResultVO
	 *
	 */
	public ResultVO emailCheckSendCode(String userId,String email);
	/**
	 * 
	 * TODO 邮箱验证
	 * 
	 * @author Qjen
	 * @time 2018年3月13日 下午1:33:06
	 * @return ResultVO
	 *
	 */
	public ResultVO emailCheck(String userId,String email,String code);
	/**
	 * 
	 * TODO 手机号码验证
	 * 
	 * @author Qjen
	 * @time 2018年3月13日 下午1:34:10
	 * @return ResultVO
	 *
	 */
	public ResultVO mobilePhoneCheck(String userId,String code);
	
	public ResultVO getUserRelationships(String userId,Integer sortStatus,String param,Integer pageNumber,Integer maxPageRow);

	/**
	 * 
	 * TODO 根据用户ID查询我的提现
	 * @author PeterMo
	 * @time 2018年5月29日 下午2:38:44
	 * @return ResultVO
	 */
	public ResultVO takeCash(String userId);
	
	/**
	 *  修改用户二维码
	 * @author PeterMo
	 * @param userId
	 * @return
	 */
	public ResultVO updateUserQrcode();
	
	/**
	 * 
	 * TODO 根据ID 修改用户二维码
	 * @author PeterMo
	 * @time 2018年6月8日 下午4:42:26
	 * @return ResultVO
	 */
	public ResultVO updateUserQrcodeById(String userId);
	
}
